import userApi from '@/config/server/api/user'
import customerApi from '@/config/server/api/customer'
import buildingApi from '@/config/server/api/building'
import dt from '@dt/dt'

//在案场人员
function GetTeamUsers(params) {
  return userApi.teams.GetTeamUsers.fetch(params).then((res) => {
    return res
  })
}
//离场人员
function GetTeamHistory(params) {
  return userApi.teams.GetTeamHistory.fetch(params).then((res) => {
    return res
  })
}
//新增团队分组
function insertTeamGroup(params) {
  return userApi.teams.insertTeamGroup.fetch(params).then((res) => {
    return res
  })
}
//查询全部团队分组
function queryAllTeamGroup(params) {
  return userApi.teams.queryAllTeamGroup.fetch(params).then((res) => {
    res && res.map(item => {
      item.ishaveleader = false
      if (item.baseUsers.length > 0) {
        item.baseUsers.map(itemL => {
          if (itemL.groupLeader == 1) {
            item.ishaveleader = true
          }
        })
      }
    })
    return res
  })
}
//修改团队分组名称
function updateTeamGroup(params) {
  return userApi.teams.updateTeamGroup.fetch(params).then((res) => {
    return res
  })
}
//根据id删除分组
function deleteTeamGroup(params) {
  return userApi.teams.deleteTeamGroup.fetch(params).then((res) => {
    return res
  })
}

//批量添加组人员
function insertBatchTeamGroupUser(params) {
  return userApi.teams.insertBatchTeamGroupUser.fetch(params).then((res) => {
    return res
  })
}

//修改组长(一个组只能一个组长)
function updateGroupLeader(params) {
  return userApi.teams.updateGroupLeader.fetch(params).then((res) => {
    return res
  })
}

//删除分组的用户
function removeGroupUser(params) {
  return userApi.teams.removeGroupUser.fetch(params).then((res) => {
    return res
  })
}

//新增成员
function addTeamUser(params) {
  return userApi.teams.addTeamUser.fetch(params).then((res) => {
    return res
  })
}
//获取前台角色  rewardShareFlag: 1:参与分摊比例的前台角色 2：所有前台角色 3：所有前台角色和参与分摊比例的后台角色 4：所有参与分摊比例的后台角色
function getFrontRoles(params) {
  return userApi.teams.getFrontRoles.fetch(params).then((res) => {
    return res
  })
}
//根据工号查人员
function getByWorkNo(params) {
  return userApi.teams.getByWorkNo.fetch(params).then((res) => {
    return res
  })
}

//添加完人员 设置分摊比例
function adjustBonusRatio(params) {
  return userApi.teams.adjustBonusRatio.fetch(params).then((res) => {
    return res
  })
}
//调整分摊比例  分摊比例查询
function qryAllRatioLogs(params) {
  return userApi.teams.qryAllRatioLogs.fetch(params).then((res) => {
    return res
  })
}
//调整分摊新增分摊比例
function addRatioInfoLogs(params) {
  return userApi.teams.addRatioInfoLogs.fetch(params).then(res => {
    return res

  })
}
//异动信息提醒，包括：成员调入、成员离职提醒、成员调出被退回
function getChangeTips(params) {
  return userApi.teams.getChangeTips.fetch(params).then((res) => {
    return res
  })
}
//调入成员 
function joinTeam(params) {
  return userApi.teams.joinTeam.fetch(params).then((res) => {
    return res
  })
}
//调出成员
function userExitTeam(params) {
  return userApi.teams.userExitTeam.fetch(params).then((res) => {
    return res
  })
}
//根据公司名称模糊查询公司
function getOrgByOrgName(params) {
  return userApi.teams.getOrgByOrgName.fetch(params).then((res) => {
    let arr = []
    res.forEach(item => {
      arr.push({ name: item.orgName, orgId: String(item.id) })
    })
    return arr
  })
}
// 根据公司orgId查询公司下所有案场
function getBuildingByOrg(params) {
  return userApi.teams.getBuildingByOrg.fetch(params).then((res) => {
    return res
  })
}
//成员变更
function editMember(params) {
  return userApi.teams.editMember.fetch(params).then((res) => {
    return res
  })
}
//退回信息查看埋点
function lookOverTips(params) {
  return userApi.teams.lookOverTips.fetch(params).then((res) => {
    return res
  })
}
// 根据顾问ID查询该顾问案场下可以进入公客池的客户数
function getCustomerPoolCountByUser(params) {
  return customerApi.teams.getCustomerPoolCountByUser.fetch(params).then((res) => {
    return res
  })
}
// 通过楼盘id获取团队详细信息
function TermIdByBuildingId(params) {
  return buildingApi.teams.TermIdByBuildingId.fetch(params).then((res) => {
    return res
  })
}

// 查询楼盘任务负责人 
function getTaskLeader(params) {
  return userApi.teams.getTaskLeader.fetch(params).then(res => {
    res && res.map(item => {
      item.taskTypeStr = dt.dictInfo().__value('TaskLeader', item.taskType)
    })
    return res
  })
}
// 查当前案场所有女专、专案、主委姓名   group  1(所有可不传),2(专案与主委)
function getTaskUser(params) {
  return userApi.teams.getTaskUser.fetch(params)
  // .then(res=>{
  //   let Arr = res&&res.forEach(item=>{
  //     item
  //   })
  //   return Arr
  // })
}
// 查寻用户是否任务责任人 
function isTaskUser(params) {
  return userApi.teams.isTaskUser.fetch(params)
}
// 设置楼盘任务负责人 
function setTaskLeader(params) {
  return userApi.teams.setTaskLeader.fetch(params)
}
/**
 * 1.groupLeader == 2 && outGroup == 2 展示 inGroupDate
 * 2.groupLeader == 1 && outGroup == 2 展示 takeEffectDate
 * 3.groupLeader == 2 && outGroup == 2 cancelDate 不为空展示 cancelDate，为空展示 inGroupDate
 * 4.groupLeader == 2 && outGroup == 1 展示 outGroupDate
 */

function setInGroupDate(data) {
  if (data.groupLeader == 2 && data.outGroup == 2) {
    if (data.cancelDate) {
      data.inGroupDate = data.cancelDate
      data.displayNum = 3
    } else {
      data.inGroupDate = data.inGroupDate
      data.displayNum = 1
    }
  } else if (data.groupLeader == 1 && data.outGroup == 2) {
    data.inGroupDate = data.takeEffectDate
    data.displayNum = 2
  } else if (data.groupLeader == 2 && data.outGroup == 1) {
    data.inGroupDate = data.outGroupDate
    data.displayNum = 4
  }
  return data
}
//变更记录查询(查当前组则传 groupId,查全部则不传)
function changeRecordQuery(params) {
  return userApi.teams.changeRecordQuery.fetch(params).then(res => {
    res && res.forEach(item => {
      item.inGroupDate = item.inGroupDate ? item.inGroupDate.split(' ')[0] : null
      item.takeEffectDate = item.takeEffectDate ? item.takeEffectDate.split(' ')[0] :
        null
      item.outGroupDate = item.outGroupDate ? item.outGroupDate.split(' ')[0] : null
      item.cancelDate = item.cancelDate ? item.cancelDate.split(' ')[0] : null
      item = setInGroupDate(item)
    });
    return res
  })
}
//变更记录删除
function changeRecordDelete(params) {
  return userApi.teams.changeRecordDelete.fetch(params)
}
//删除最后一条记录时,触发删除用户组人员
function delLastOneLog(params) {
  return userApi.teams.delLastOneLog.fetch(params)

}
//变更记录编辑
function changeRecordUpdate(params) {
  return userApi.teams.changeRecordUpdate.fetch(params)
}
//获取用户所有进场/离场日期
function getFactoryDate(params) {
  return userApi.teams.getFactoryDate.fetch(params).then(res => {
    res.forEach((item, index) => {
      res[index] = item.split(' ')[0]
    })
    return res
  })
}
//角色记录
function getUserLog(params) {
  return userApi.teams.getUserLog1.fetch(params).then(res => {
    res && res.forEach(item => {
      item.effectiveDate = item.effectiveDate ? item.effectiveDate.split(' ')[0] : null
    })
    return res
  })
}
//比例记录
function getUserRatioLog(params) {
  return userApi.teams.getUserLog2.fetch(params).then(res => {
    res && res.forEach(item => {
      item.bonusRatio = item.bonusRatio + '%'
    })
    return res
  })
}

//编辑用户个人日志：角色记录
function editUserLog(params) {
  return userApi.teams.editUserLog.fetch(params)
}
//查询是否有嘉阳编制
function getJYCompile(params) {
  return userApi.teams.getJYCompile.fetch(params)
}

//获取单个案场SOP配置 
function getSopConfig(params) {
  return customerApi.buildingManagement.getSopConfig.fetch(params).then((res) => {
    return res
  })
}
//获取最近的一条异动记录
function getUserChangeTimeLimit1(params) {
  return userApi.teams.getUserChangeTimeLimit1.fetch(params).then((res) => {
    return res
  })
}
//获取成员编制所属
function getMemberCompile(params) {
  return userApi.teams.getMemberCompile.fetch(params)
}
//异动信息列表
function getChangeTipsList(params) {
  return userApi.teams.getChangeTipsList.fetch(params)
}

export default {
  GetTeamUsers,
  getChangeTips,
  GetTeamHistory,
  insertTeamGroup,
  queryAllTeamGroup,
  updateTeamGroup,
  deleteTeamGroup,
  insertBatchTeamGroupUser,
  updateGroupLeader,
  removeGroupUser,
  addTeamUser,
  getFrontRoles,
  getByWorkNo,
  adjustBonusRatio,
  qryAllRatioLogs,
  addRatioInfoLogs,
  joinTeam,
  userExitTeam,
  getOrgByOrgName,
  getBuildingByOrg,
  editMember,
  lookOverTips,
  getCustomerPoolCountByUser,
  TermIdByBuildingId,
  getTaskLeader,
  getTaskUser,
  isTaskUser,
  setTaskLeader,
  changeRecordQuery,
  changeRecordUpdate,
  changeRecordDelete,
  delLastOneLog,
  getFactoryDate,
  getUserLog,
  getUserRatioLog,
  editUserLog,
  getJYCompile,
  getSopConfig,
  getUserChangeTimeLimit1,
  getMemberCompile,
  getChangeTipsList
}